home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / fenv.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-07-18  |  1.6 KB  |  72 lines

  1. /* Copyright (C) 1995-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
  2. #if __DMC__ || __RCC__
  3. #pragma once
  4. #endif
  5.  
  6. #ifndef __FLTENV_H
  7. #define __FLTENV_H 1
  8.  
  9. #if __cplusplus
  10. extern "C" {
  11. #endif
  12.  
  13. typedef struct __fenv_t
  14. {
  15.     unsigned short status;
  16.     unsigned short control;
  17.     unsigned short round;
  18.     unsigned short reserved[2];
  19. } fenv_t;
  20.  
  21. typedef int fexcept_t;
  22.  
  23. #define FE_INVALID    1
  24. #define FE_DENORMAL    2
  25. #define FE_DIVBYZERO    4
  26. #define FE_OVERFLOW    8
  27. #define FE_UNDERFLOW    0x10
  28. #define FE_INEXACT    0x20
  29. #define FE_ALL_EXCEPT    0x3F
  30.  
  31. #define FE_TONEAREST    0
  32. #define FE_UPWARD    0x800
  33. #define FE_DOWNWARD    0x400
  34. #define FE_TOWARDZERO    0xC00
  35.  
  36. extern fenv_t __cdecl FE_DFL_ENV;
  37.  
  38. #define FE_FLTPREC    0
  39. #define FE_DBLPREC    0x200
  40. #define FE_LDBLPREC    0x300
  41.  
  42. int  __cdecl fetestexcept(int excepts);
  43. int  __cdecl feraiseexcept(int excepts);
  44. int  __cdecl feclearexcept(int excepts);
  45. int  __cdecl fegetexcept(fexcept_t *flagp,int excepts);
  46. int  __cdecl fesetexcept(const fexcept_t *flagp,int excepts);
  47. int  __cdecl fegetround(void);
  48. int  __cdecl fesetround(int round);
  49. int  __cdecl fegetprec(void);
  50. int  __cdecl fesetprec(int prec);
  51. void __cdecl fegetenv(fenv_t *envp);
  52. void __cdecl fesetenv(const fenv_t *envp);
  53. void __cdecl feprocentry(fenv_t *envp);
  54. void __cdecl feprocexit(const fenv_t *envp);
  55.  
  56. // Not implemented yet
  57. int  __cdecl fegetexceptflag(fexcept_t *flagp,int excepts);
  58. int  __cdecl fesetexceptflag(const fexcept_t *flagp,int excepts);
  59. int  __cdecl feholdexcept(fenv_t *envp);
  60. void __cdecl feupdateenv(const fenv_t *envp);
  61.  
  62. #if __cplusplus
  63. }
  64. #endif
  65.  
  66. #endif
  67.  
  68.  
  69.  
  70.  
  71.  
  72.